import {
	router
} from '@/router/index.js';
export const zoomImg = imagePath => {
  uni.getImageInfo({
    src: imagePath,
    success: res => {
      const syncwidths = uni.getSystemInfoSync().windowWidth / res.width
      const syncHeights = res.height * syncwidths
      return syncHeights
    }
  })
}
export const isValidPhone = phone => {
  return /^1\d{10}$/.test(phone)
}

export function throttle(fn, delay) {
  let previous = 0
  return function () {
    const args = arguments
    const now = new Date()
    if (now - previous > delay) {
      fn.apply(this, args)
      previous = now
    }
  }
}

/**
 * @desc 跳转下一级页面公用方法 登录的情况下直接跳转至指定页面，未登录时直接跳转登录页
 * @params {name: String} 路由名称 对应pagejson中的name
 * @params {params: Object} 跳转参数
 * @params {replace:Boolean} 是否重定向，如果是需要登录成功后直接跳转至下一级页面， replace需要传值
*/
export const jumpNext = async (name, params, replace) => {
  const token = await uni.getStorageSync('token')
  const page = getCurrentPages()
  // 获取当前页路由，若当前为首页，则清一下首页的倒计时自动跳转
  // 当前是为了处理首页10s倒计时自动跳转前，若用户手动触发了跳转逻辑，则直接跳转并清空倒计时逻辑
  if (page.length) {
    if (page[0]?.route == 'pages/index/index') {
      uni.setStorageSync('autoJump', true)
      // page[0]?.$vm?.$refs?.home?.$refs?.commonbannerTop?.swiperPlay(false)
      // page[0]?.$vm?.$refs?.home?.$refs?.commonbannerBottom?.swiperPlay(false)
    }
  }
  // 判断是否登录，若未登录则跳转登录页 若传了replace 则重定向至name 若不传，则push
  // replace 只有在未登录的时候才会传
  if (token) {
    if (replace) {
      router.replace({
        name,
        params
      })
    } else {
      router.push({
        name,
        params
      })
    }
  } else {
    if (name != 'index') {
      // 未登录、则跳转登录，并携带相关参数
      router.push({
        name: 'login',
        params: {
          ...params,
          jumpNextName: name
        }
      })
    } else {
      // 未登录、则跳转登录，并携带相关参数
      router.push({
        name: 'index'
      })
    }
  }
}